import Vue from 'vue'
import router from './router'
import store from './store'
import axios from 'axios'
import VueAxios from 'vue-axios' // 把axios挂载到vue实例
import VueLazyLoad from 'vue-lazyload'
import VueCookie from 'vue-cookie'
import { Message } from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import env from './env'
import App from './App.vue'

// mock开关
const mock = false;
if (mock) {
    require('./mock/api');
}

// 根据前端的跨域方式做调整(本项目使用代理)
axios.defaults.baseURL = '/api'; // 代理跨域,使用vue.config.js
// axios.defaults.baseURL = env.baseURL; // CORS和JSONP跨域使用env.js
axios.defaults.timeout = 8000; // 8秒

// 对后台返回值进行拦截处理
axios.interceptors.response.use(function (response) {
    // 从response取出后台返回值R
    let res = response.data;
    if (res.status === 0) {
        // 将后台R中的data返回
        return res.data
    } else if (res.status === 10) {
        // 用户未登录,跳转到登录页 (#:hash路由),如果在index页面不跳转
        if (location.hash != '#/index') {
            window.location.href = '/#/login';
        }
        return Promise.reject(res);
    } else {
        Message.warning(res.msg);
        return Promise.reject(res);
    }
},(error)=>{
    let res = error.response;
    Message.error(res.data.message);
    return Promise.reject(error);
});

Vue.use(VueAxios, axios);
Vue.use(VueCookie);
Vue.use(VueLazyLoad, {
    loading:'/imgs/loading-svg/loading-bars.svg'
});
Vue.prototype.$message = Message;
Vue.config.productionTip = false;

new Vue({
    router,
    store,
    render: h => h(App),
}).$mount('#app');
